-- *****************************************************************
-- Juniper-SDX-GW-MIB
--
-- Juniper Networks Inc.
-- Service Deployment System (SDX) MIB
-- GateWay
--
Juniper-SDX-GW-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Integer32,
    Counter32,
    Gauge32,
    IpAddress,
    TimeTicks
        FROM SNMPv2-SMI

    DisplayString
        FROM SNMPv2-TC

    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB

    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF

    juniSdxMibs
        FROM Juniper-SDX-MIBS
        
    JuniNicHostRedundStateType,
    JuniNicAgentTypeType,
    JuniNicAgentDSConnStatusType
        FROM Juniper-SDX-TC-MIB;
        
juniSdxGwMib MODULE-IDENTITY
    LAST-UPDATED "200410061345Z"  -- 06-Oct-04

    ORGANIZATION "Juniper Networks, Inc."
    CONTACT-INFO
        "        Juniper Technical Assistance Center
                 Juniper Networks, Inc.
                 1194 N. Mathilda Avenue
                 Sunnyvale, CA 94089
                 E-mail: support@juniper.net"

    DESCRIPTION
        "MIB of the SDX Gateway"

    REVISION
    "200410061345Z"   -- 06-Oct-04
    DESCRIPTION
    "Adding nic host mib"
    ::= { juniSdxMibs 7 }

juniSdxMgmtInterface OBJECT IDENTIFIER ::= { juniSdxGwMib 1 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--
-- SDX NIC Host Tables
-- 
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniSdxNicHost OBJECT IDENTIFIER ::= { juniSdxMgmtInterface 1 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--   
-- NIC HOST MI Table
--  
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    juniNicHostTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF JuniNicHostEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Table of NIC Host MI-derived entries."
        ::= { juniSdxNicHost 1 }

    juniNicHostEntry OBJECT-TYPE
        SYNTAX      JuniNicHostEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry describing attributes of a NIC host. This table has one index:
             juniNicHostIndex. It is same as the slot number."
        INDEX   { juniNicHostIndex }
        ::= { juniNicHostTable 1 }
    
    JuniNicHostEntry::= SEQUENCE {
        juniNicHostIndex                Integer32,
        juniNicHostUptime               TimeTicks,
        juniNicHostAddr                 IpAddress,
        juniNicHostThreads              Gauge32,
        juniNicHostHeapLimit            Integer32,
        juniNicHostHeapUsed             Gauge32,
        juniNicHostCompRestarts         Counter32,
        juniNicHostCompRestartTime      TimeTicks, 
        juniNicHostResolutions          Counter32,
        juniNicHostUnmatchedResolutions Counter32,
        juniNicHostResolutionErrors     Counter32,
        juniNicHostResolutionTime       TimeTicks,
        juniNicHostNotifs               Counter32,
        juniNicHostDataItemsInNotif     Counter32,
        juniNicHostPulls                Counter32,
        juniNicHostRedundState          JuniNicHostRedundStateType,
        juniNicHostRedundElections      Counter32,
        juniNicHostRedundStateSwitches   Counter32,
        juniNicHostRedundLastSwitch     TimeTicks
    }

    juniNicHostIndex OBJECT-TYPE
        SYNTAX          Integer32 (0..1000)
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of the slot on which this NIC host is running."
        ::= { juniNicHostEntry 1 }

    juniNicHostUptime OBJECT-TYPE
        SYNTAX      TimeTicks
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
        "The time (in hundredths of a second) since the NIC Host 
         was last started."
        ::= { juniNicHostEntry 2 }

    juniNicHostAddr OBJECT-TYPE
        SYNTAX          IpAddress
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The IP address the NIC Host listens on."
        ::= { juniNicHostEntry 3 }

    juniNicHostThreads OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of Java threads that currently exist inside
             this NIC Host's Java virtual machine."        
        ::= { juniNicHostEntry 4 }

    juniNicHostHeapLimit OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "kilobytes"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
             "The maximum memory (in kilobytes) available for use by this 
              NIC Host's JVM."
        ::= { juniNicHostEntry 5 }

    juniNicHostHeapUsed OBJECT-TYPE
        SYNTAX      Gauge32
        UNITS       "kilobytes"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The amount of used heap space out of the total allocated by
             the JVM."
        ::= { juniNicHostEntry 6 }

    juniNicHostCompRestarts OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of component restarts."
        ::= { juniNicHostEntry 7 }

    juniNicHostCompRestartTime OBJECT-TYPE
        SYNTAX      TimeTicks
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
        "The time (in hundredths of a second) since the last time a component
         was restarted."
        ::= { juniNicHostEntry 8 }

    juniNicHostResolutions OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of resolutions that have been done during the life of 
             this NIC Host."
        ::= { juniNicHostEntry 9 }

    juniNicHostUnmatchedResolutions OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of unmatched resolutions that have been received during 
             the life of this NIC Host."
        ::= { juniNicHostEntry 10 }
    
    juniNicHostResolutionErrors OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of resolutions that failed due to an error during 
             the life of this NIC Host."
        ::= { juniNicHostEntry 11 }

    juniNicHostResolutionTime OBJECT-TYPE
        SYNTAX          TimeTicks
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The total time (in hundredths of a second) used on resolutions during
             the life of this NIC Host."
        ::= { juniNicHostEntry 12 }

    juniNicHostNotifs OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of notifications that have been received during the life
             of this NIC Host."
        ::= { juniNicHostEntry 13 }

    juniNicHostDataItemsInNotif OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The total number of data items received with notifications during 
             the life of this NIC Host."
        ::= { juniNicHostEntry 14 }

    juniNicHostPulls OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of pulls that have been performed during the life of
             this NIC Host."
        ::= { juniNicHostEntry 15 }

    juniNicHostRedundState OBJECT-TYPE
        SYNTAX          JuniNicHostRedundStateType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The redundancy state of this NIC Host."
        ::= { juniNicHostEntry 16 }

    juniNicHostRedundElections OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of elections that have been performed during the life 
             of this NIC Host."
        ::= { juniNicHostEntry 17 }

    juniNicHostRedundStateSwitches OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of times this host switched from active to passive
             or vice versa during the life of this NIC Host."
        ::= { juniNicHostEntry 18 }

    juniNicHostRedundLastSwitch OBJECT-TYPE
        SYNTAX          TimeTicks
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The time (in hundredths of a second) since the last time that this
             NIC Host switched redundancy state."
        ::= { juniNicHostEntry 19 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--   
-- Obsolete NIC HOST Resolver Table
--  
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    juniObsNicReslvTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF JuniObsNicReslvEntry
        MAX-ACCESS  not-accessible
        STATUS      obsolete
        DESCRIPTION
            "Table of an instance of a NIC resolver."
        ::= { juniSdxNicHost 2 }

    juniObsNicReslvEntry OBJECT-TYPE
        SYNTAX      JuniObsNicReslvEntry
        MAX-ACCESS  not-accessible
        STATUS      obsolete
        DESCRIPTION
            "An entry describing attributes of a NIC resolver. This table
            has one index: juniObsNicReslvIndex."
        INDEX   { juniObsNicReslvIndex }
        ::= { juniObsNicReslvTable 1 }
    
    JuniObsNicReslvEntry ::= SEQUENCE {
        juniObsNicReslvIndex               Integer32,
        juniObsNicReslvName                SnmpAdminString,
        juniObsNicReslvSize                Gauge32,
        juniObsNicReslvDataSources         Gauge32
    }

    juniObsNicReslvIndex OBJECT-TYPE
        SYNTAX          Integer32 (0..1000)
        MAX-ACCESS      not-accessible
        STATUS          obsolete
        DESCRIPTION
            "A unique number identifying a row in the juniObsNicReslvTable."
        ::= { juniObsNicReslvEntry 1 }

    juniObsNicReslvName OBJECT-TYPE
        SYNTAX          SnmpAdminString
        MAX-ACCESS      read-only
        STATUS          obsolete
        DESCRIPTION
            "The name of the NIC resolver."
        ::= { juniObsNicReslvEntry 2 }

    juniObsNicReslvSize OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          obsolete
        DESCRIPTION
            "The number of keys stored in this resolver. Based on the resolver
             type it represents either the size of the set of network data for
             this resolver or the size of the mapping between different network
             data types that this resolver stores.
             
             For example, for ipToIpPool resolver resolver size represents the
             set of ip pools for all virtual routers discovered by the system,
             for poolToVr resolver it represents the size of the mapping from ip
             pools to virtual routers in which those pools are configured, for
             VrSaeId resolver it represents the size of the mapping from virtual
             router names to SAE ids managing these VRs."

        ::= { juniObsNicReslvEntry 3 }

    juniObsNicReslvDataSources OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          obsolete
        DESCRIPTION
            "The number of agents or forwarders currently connected to this
             resolver. A NIC agent is responsible for collecting state
             information from network data sources (such as SAEs, Radius Servers,
             etc) and communicating it to the NIC resolvers to aid in the
             resolution process."
        ::= { juniObsNicReslvEntry 4 }
         
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--   
-- NIC HOST Resolver Table
--  
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    juniNicReslvTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF JuniNicReslvEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Table of an instance of a NIC resolver."
        ::= { juniSdxNicHost 4 }

    juniNicReslvEntry OBJECT-TYPE
        SYNTAX      JuniNicReslvEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry describing attributes of a NIC resolver. This table
            is indexed by juniNicHostIndex and juniNicReslvName."
        INDEX   { juniNicHostIndex,
                IMPLIED juniNicReslvName }
        ::= { juniNicReslvTable 1 }
    
    JuniNicReslvEntry ::= SEQUENCE {
        juniNicReslvName                SnmpAdminString,
        juniNicReslvSize                Gauge32,
        juniNicReslvDataSources         Gauge32
    }

    juniNicReslvName OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE(1..64))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The name of the NIC resolver."
        ::= { juniNicReslvEntry 1 }

    juniNicReslvSize OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of keys stored in this resolver. Based on the resolver
             type it represents either the size of the set of network data for
             this resolver or the size of the mapping between different network
             data types that this resolver stores.
             
             For example, for ipToIpPool resolver resolver size represents the
             set of ip pools for all virtual routers discovered by the system,
             for poolToVr resolver it represents the size of the mapping from ip
             pools to virtual routers in which those pools are configured, for
             VrSaeId resolver it represents the size of the mapping from virtual
             router names to SAE ids managing these VRs."

        ::= { juniNicReslvEntry 2 }

    juniNicReslvDataSources OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of agents or forwarders currently connected to this
             resolver. A NIC agent is responsible for collecting state
             information from network data sources (such as SAEs, Radius Servers,
             etc) and communicating it to the NIC resolvers to aid in the
             resolution process."
        ::= { juniNicReslvEntry 3 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--   
-- Obsolete NIC Agent Table
--  
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    juniObsNicAgentTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF JuniObsNicAgentEntry
        MAX-ACCESS  not-accessible
        STATUS      obsolete
        DESCRIPTION
            "Table of an instance of a NIC agent."
        ::= { juniSdxNicHost 3 }

    juniObsNicAgentEntry OBJECT-TYPE
        SYNTAX      JuniObsNicAgentEntry
        MAX-ACCESS  not-accessible
        STATUS      obsolete
        DESCRIPTION
            "An entry describing attributes of a NIC agent. This table has one index:
             juniObsNicAgentIndex."
        INDEX   { juniObsNicAgentIndex }
        ::= { juniObsNicAgentTable 1 }
    
    JuniObsNicAgentEntry ::= SEQUENCE {
        juniObsNicAgentIndex               Integer32,
        juniObsNicAgentName                SnmpAdminString,
        juniObsNicAgentType                JuniNicAgentTypeType,
        juniObsNicAgentDataSize            Gauge32,
        juniObsNicAgentDSConnStatus        JuniNicAgentDSConnStatusType
    }

    juniObsNicAgentIndex OBJECT-TYPE
        SYNTAX          Integer32 (0..1000)
        MAX-ACCESS      not-accessible
        STATUS          obsolete
        DESCRIPTION
            "A unique number identifying a row in the juniObsNicAgentTable."
        ::= { juniObsNicAgentEntry 1 }
 
    juniObsNicAgentName OBJECT-TYPE
        SYNTAX          SnmpAdminString
        MAX-ACCESS      read-only
        STATUS          obsolete
        DESCRIPTION
            "The name of the NIC agent."
        ::= { juniObsNicAgentEntry 2 }

    juniObsNicAgentType OBJECT-TYPE
        SYNTAX          JuniNicAgentTypeType
        MAX-ACCESS      read-only
        STATUS          obsolete
        DESCRIPTION
            "The type of the NIC agent."
        ::= { juniObsNicAgentEntry 3 }

    juniObsNicAgentDataSize OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          obsolete
        DESCRIPTION
            "The size of NIC Agent data. For example for PoolVr and VrSaeId
             Directory Agents the size of the agent data is the total number of
             virtual routers loaded from directory by the NIC system."
        ::= { juniObsNicAgentEntry 4 }

    juniObsNicAgentDSConnStatus OBJECT-TYPE
        SYNTAX          JuniNicAgentDSConnStatusType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The connection status to data source from this NIC Agent."
        ::= { juniObsNicAgentEntry 5 }
        
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--   
-- NIC Agent Table
--  
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    juniNicAgentTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF JuniNicAgentEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Table of an instance of a NIC agent."
        ::= { juniSdxNicHost 5 }

    juniNicAgentEntry OBJECT-TYPE
        SYNTAX      JuniNicAgentEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry describing attributes of a NIC agent. This table is indesed by
             juniNicHostIndex and juniNicAgentName."
        INDEX   { juniNicHostIndex,
                 IMPLIED juniNicAgentName}
        ::= { juniNicAgentTable 1 }
    
    JuniNicAgentEntry ::= SEQUENCE {
        juniNicAgentName                SnmpAdminString,
        juniNicAgentType                JuniNicAgentTypeType,
        juniNicAgentDataSize            Gauge32,
        juniNicAgentDSConnStatus        JuniNicAgentDSConnStatusType
    }

    juniNicAgentName OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE(1..64))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The name of the NIC agent."
        ::= { juniNicAgentEntry 1 }

    juniNicAgentType OBJECT-TYPE
        SYNTAX          JuniNicAgentTypeType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The type of the NIC agent."
        ::= { juniNicAgentEntry 2 }

    juniNicAgentDataSize OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The size of NIC Agent data. For example for PoolVr and VrSaeId
             Directory Agents the size of the agent data is the total number of
             virtual routers loaded from directory by the NIC system."
        ::= { juniNicAgentEntry 3 }

    juniNicAgentDSConnStatus OBJECT-TYPE
        SYNTAX          JuniNicAgentDSConnStatusType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The connection status to data source from this NIC Agent."
        ::= { juniNicAgentEntry 4 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--
-- Conformance information
--
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniSdxGwCompliances OBJECT IDENTIFIER ::= { juniSdxGwMib 2 }
juniSdxGwGroups      OBJECT IDENTIFIER ::= { juniSdxGwMib 3 }

-- compliance statements

juniSdxGwCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the SDX MIB."
        MODULE  -- this module
                MANDATORY-GROUPS { juniSdxGwGroup }
        ::= { juniSdxGwCompliances 1 }

juniSdxGwGroup OBJECT-GROUP
    OBJECTS {
        juniNicHostIndex,
        juniNicHostUptime,
        juniNicHostAddr,
        juniNicHostThreads,
        juniNicHostHeapLimit,
        juniNicHostHeapUsed,
        juniNicHostCompRestarts,
        juniNicHostCompRestartTime, 
        juniNicHostResolutions,
        juniNicHostUnmatchedResolutions,
        juniNicHostResolutionErrors,
        juniNicHostResolutionTime,
        juniNicHostNotifs,
        juniNicHostDataItemsInNotif,
        juniNicHostPulls,
        juniNicHostRedundState,
        juniNicHostRedundElections,
        juniNicHostRedundStateSwitches,
        juniNicHostRedundLastSwitch,

        juniNicReslvName,
        juniNicReslvSize,
        juniNicReslvDataSources,

        juniNicAgentName,
        juniNicAgentType,
        juniNicAgentDataSize,
        juniNicAgentDSConnStatus
    } 
    STATUS  current
    DESCRIPTION
        "A collection of management objects pertaining
        to system management capabilities in SDX. (GW)"
        ::= { juniSdxGwGroups 1 }
        
juniSdxGwObsoleteGroup OBJECT-GROUP
    OBJECTS
    {   
        -- Nic host resolver
        juniObsNicReslvName,
        juniObsNicReslvSize,
        juniObsNicReslvDataSources,
        -- Nic agent
        juniObsNicAgentName,
        juniObsNicAgentType,
        juniObsNicAgentDataSize,
        juniObsNicAgentDSConnStatus                       
    }
    STATUS  obsolete
    DESCRIPTION
        "A collection of obsolete management objects pertaining
        to system management capabilities in SDX. (GW)"
        ::= { juniSdxGwGroups 2 }
END